home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / dflat_r_.arc / CONFIG.C < prev    next >
Text File  |  1991-10-02  |  14KB  |  392 lines

  1. /* ------------- config.c ------------- */
  2.  
  3. #include <conio.h>
  4. #include <string.h>
  5. #include "dflat.h"
  6.  
  7. /* ----- default colors for color video system ----- */
  8. unsigned char color[CLASSCOUNT] [4] [2] = {
  9.     /* ------------ NORMAL ------------ */
  10.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  11.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  12.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  13.     {LIGHTGRAY, BLACK}},/* HILITE_COLOR */
  14.  
  15.     /* ---------- APPLICATION --------- */
  16.    {{LIGHTGRAY, BLUE},  /* STD_COLOR    */
  17.     {LIGHTGRAY, BLUE},  /* SELECT_COLOR */
  18.     {LIGHTGRAY, BLUE},  /* FRAME_COLOR  */
  19.     {LIGHTGRAY, BLUE}}, /* HILITE_COLOR */
  20.  
  21.     /* ------------ TEXTBOX ----------- */
  22.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  23.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  24.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  25.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  26.  
  27.     /* ------------ LISTBOX ----------- */
  28.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  29.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  30.     {LIGHTGRAY, BLUE},  /* FRAME_COLOR  */
  31.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  32.  
  33.     /* ----------- EDITBOX ------------ */
  34.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  35.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  36.     {LIGHTGRAY, BLUE},  /* FRAME_COLOR  */
  37.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  38.  
  39.     /* ---------- MENUBAR ------------- */
  40.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  41.     {BLACK, CYAN},      /* SELECT_COLOR */
  42.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  43.     {DARKGRAY, RED}},   /* HILITE_COLOR
  44.                           Inactive, Shortcut (both FG) */
  45.  
  46.     /* ---------- POPDOWNMENU --------- */
  47.    {{BLACK, CYAN},      /* STD_COLOR    */
  48.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  49.     {BLACK, CYAN},      /* FRAME_COLOR  */
  50.     {DARKGRAY, RED}},   /* HILITE_COLOR
  51.                            Inactive ,Shortcut (both FG) */
  52.  
  53. #ifdef INCLUDE_DIALOG_BOXES
  54.     /* ------------ BOX --------------- */
  55.    {{LIGHTGRAY, BLUE},  /* STD_COLOR    */
  56.     {LIGHTGRAY, BLUE},  /* SELECT_COLOR */
  57.     {LIGHTGRAY, BLUE},  /* FRAME_COLOR  */
  58.     {LIGHTGRAY, BLUE}}, /* HILITE_COLOR */
  59.  
  60.     /* ------------ BUTTON ------------ */
  61.    {{BLACK, CYAN},      /* STD_COLOR    */
  62.     {WHITE, CYAN},      /* SELECT_COLOR */
  63.     {BLACK, CYAN},      /* FRAME_COLOR  */
  64.     {DARKGRAY, RED}},   /* HILITE_COLOR
  65.                            Inactive ,Shortcut (both FG) */
  66.  
  67.     /* ------------- DIALOG ----------- */
  68.    {{LIGHTGRAY, BLUE},  /* STD_COLOR    */
  69.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  70.     {LIGHTGRAY, BLUE},  /* FRAME_COLOR  */
  71.     {LIGHTGRAY, BLUE}}, /* HILITE_COLOR */
  72. #endif
  73.  
  74.     /* ----------- ERRORBOX ----------- */
  75.    {{YELLOW, RED},      /* STD_COLOR    */
  76.     {YELLOW, RED},      /* SELECT_COLOR */
  77.     {YELLOW, RED},      /* FRAME_COLOR  */
  78.     {YELLOW, RED}},     /* HILITE_COLOR */
  79.  
  80.     /* ----------- MESSAGEBOX --------- */
  81.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  82.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  83.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  84.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  85.  
  86. #ifdef INCLUDE_HELP
  87.     /* ----------- HELPBOX ------------ */
  88.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  89.     {LIGHTGRAY, BLUE},  /* SELECT_COLOR */
  90.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  91.     {WHITE, LIGHTGRAY}},/* HILITE_COLOR */
  92. #endif
  93.  
  94. #ifdef INCLUDE_STATUSBAR
  95.     /* ---------- STATUSBAR ------------- */
  96.    {{BLACK, CYAN},      /* STD_COLOR    */
  97.     {BLACK, CYAN},      /* SELECT_COLOR */
  98.     {BLACK, CYAN},      /* FRAME_COLOR  */
  99.     {BLACK, CYAN}},     /* HILITE_COLOR */
  100. #endif
  101.  
  102.     /* ---------- TITLEBAR ------------ */
  103.    {{BLACK, CYAN},      /* STD_COLOR    */
  104.     {BLACK, CYAN},      /* SELECT_COLOR */
  105.     {BLACK, CYAN},      /* FRAME_COLOR  */
  106.     {WHITE, CYAN}},     /* HILITE_COLOR */
  107.  
  108.     /* ------------ DUMMY ------------- */
  109.    {{GREEN, LIGHTGRAY}, /* STD_COLOR    */
  110.     {GREEN, LIGHTGRAY}, /* SELECT_COLOR */
  111.     {GREEN, LIGHTGRAY}, /* FRAME_COLOR  */
  112.     {GREEN, LIGHTGRAY}} /* HILITE_COLOR */
  113. };
  114.  
  115. /* ----- default colors for mono video system ----- */
  116. unsigned char bw[CLASSCOUNT] [4] [2] = {
  117.     /* ------------ NORMAL ------------ */
  118.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  119.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  120.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  121.     {LIGHTGRAY, BLACK}},/* HILITE_COLOR */
  122.  
  123.     /* ---------- APPLICATION --------- */
  124.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  125.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  126.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  127.     {LIGHTGRAY, BLACK}},/* HILITE_COLOR */
  128.  
  129.     /* ------------ TEXTBOX ----------- */
  130.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  131.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  132.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  133.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  134.  
  135.     /* ------------ LISTBOX ----------- */
  136.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  137.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  138.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  139.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  140.  
  141.     /* ----------- EDITBOX ------------ */
  142.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  143.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  144.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  145.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  146.  
  147.     /* ---------- MENUBAR ------------- */
  148.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  149.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  150.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  151.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  152.                            Inactive, Shortcut (both FG) */
  153.  
  154.     /* ---------- POPDOWNMENU --------- */
  155.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  156.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  157.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  158.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  159.                            Inactive ,Shortcut (both FG) */
  160.  
  161. #ifdef INCLUDE_DIALOG_BOXES
  162.     /* ------------ BOX --------------- */
  163.    {{LIGHTGRAY, BLACK},  /* STD_COLOR    */
  164.     {LIGHTGRAY, BLACK},  /* SELECT_COLOR */
  165.     {LIGHTGRAY, BLACK},  /* FRAME_COLOR  */
  166.     {LIGHTGRAY, BLACK}}, /* HILITE_COLOR */
  167.  
  168.     /* ------------ BUTTON ------------ */
  169.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  170.     {WHITE, LIGHTGRAY}, /* SELECT_COLOR */
  171.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  172.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  173.                            Inactive ,Shortcut (both FG) */
  174.  
  175.     /* ------------- DIALOG ----------- */
  176.    {{LIGHTGRAY, BLACK},  /* STD_COLOR    */
  177.     {BLACK, LIGHTGRAY},  /* SELECT_COLOR */
  178.     {LIGHTGRAY, BLACK},  /* FRAME_COLOR  */
  179.     {LIGHTGRAY, BLACK}}, /* HILITE_COLOR */
  180. #endif
  181.  
  182.     /* ----------- ERRORBOX ----------- */
  183.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  184.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  185.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  186.     {LIGHTGRAY, BLACK}},/* HILITE_COLOR */
  187.  
  188.     /* ----------- MESSAGEBOX --------- */
  189.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  190.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  191.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  192.     {LIGHTGRAY, BLACK}},/* HILITE_COLOR */
  193.  
  194. #ifdef INCLUDE_HELP
  195.     /* ----------- HELPBOX ------------ */
  196.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  197.     {WHITE, BLACK},     /* SELECT_COLOR */
  198.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  199.     {WHITE, LIGHTGRAY}},/* HILITE_COLOR */
  200. #endif
  201.  
  202. #ifdef INCLUDE_STATUSBAR
  203.     /* ---------- STATUSBAR ------------- */
  204.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  205.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  206.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  207.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  208. #endif
  209.  
  210.     /* ---------- TITLEBAR ------------ */
  211.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  212.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  213.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  214.     {WHITE, LIGHTGRAY}},/* HILITE_COLOR */
  215.  
  216.     /* ------------ DUMMY ------------- */
  217.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  218.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  219.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  220.     {BLACK, LIGHTGRAY}} /* HILITE_COLOR */
  221. };
  222. /* ----- default colors for reverse mono video ----- */
  223. unsigned char reverse[CLASSCOUNT] [4] [2] = {
  224.     /* ------------ NORMAL ------------ */
  225.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  226.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  227.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  228.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  229.  
  230.     /* ---------- APPLICATION --------- */
  231.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  232.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  233.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  234.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  235.  
  236.     /* ------------ TEXTBOX ----------- */
  237.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  238.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  239.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  240.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  241.  
  242.     /* ------------ LISTBOX ----------- */
  243.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  244.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  245.     {BLACK, LIGHTGRAY},  /* FRAME_COLOR  */
  246.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  247.  
  248.     /* ----------- EDITBOX ------------ */
  249.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  250.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  251.     {BLACK, LIGHTGRAY},  /* FRAME_COLOR  */
  252.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  253.  
  254.     /* ---------- MENUBAR ------------- */
  255.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  256.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  257.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  258.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  259.                            Inactive, Shortcut (both FG) */
  260.  
  261.     /* ---------- POPDOWNMENU --------- */
  262.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  263.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  264.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  265.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  266.                            Inactive ,Shortcut (both FG) */
  267.  
  268. #ifdef INCLUDE_DIALOG_BOXES
  269.     /* ------------ BOX --------------- */
  270.    {{BLACK, LIGHTGRAY},  /* STD_COLOR    */
  271.     {BLACK, LIGHTGRAY},  /* SELECT_COLOR */
  272.     {BLACK, LIGHTGRAY},  /* FRAME_COLOR  */
  273.     {BLACK, LIGHTGRAY}}, /* HILITE_COLOR */
  274.  
  275.     /* ------------ BUTTON ------------ */
  276.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  277.     {WHITE, BLACK},     /* SELECT_COLOR */
  278.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  279.     {DARKGRAY, WHITE}}, /* HILITE_COLOR
  280.                            Inactive ,Shortcut (both FG) */
  281.  
  282.     /* ------------- DIALOG ----------- */
  283.    {{BLACK, LIGHTGRAY},  /* STD_COLOR    */
  284.     {LIGHTGRAY, BLACK},  /* SELECT_COLOR */
  285.     {BLACK, LIGHTGRAY},  /* FRAME_COLOR  */
  286.     {BLACK, LIGHTGRAY}}, /* HILITE_COLOR */
  287. #endif
  288.  
  289.     /* ----------- ERRORBOX ----------- */
  290.    {{BLACK, LIGHTGRAY},      /* STD_COLOR    */
  291.     {BLACK, LIGHTGRAY},      /* SELECT_COLOR */
  292.     {BLACK, LIGHTGRAY},      /* FRAME_COLOR  */
  293.     {BLACK, LIGHTGRAY}},     /* HILITE_COLOR */
  294.  
  295.     /* ----------- MESSAGEBOX --------- */
  296.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  297.     {BLACK, LIGHTGRAY}, /* SELECT_COLOR */
  298.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  299.     {BLACK, LIGHTGRAY}},/* HILITE_COLOR */
  300.  
  301. #ifdef INCLUDE_HELP
  302.     /* ----------- HELPBOX ------------ */
  303.    {{BLACK, LIGHTGRAY}, /* STD_COLOR    */
  304.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  305.     {BLACK, LIGHTGRAY}, /* FRAME_COLOR  */
  306.     {WHITE, LIGHTGRAY}},/* HILITE_COLOR */
  307. #endif
  308.  
  309. #ifdef INCLUDE_STATUSBAR
  310.     /* ---------- STATUSBAR ------------- */
  311.    {{LIGHTGRAY, BLACK},      /* STD_COLOR    */
  312.     {LIGHTGRAY, BLACK},      /* SELECT_COLOR */
  313.     {LIGHTGRAY, BLACK},      /* FRAME_COLOR  */
  314.     {LIGHTGRAY, BLACK}},     /* HILITE_COLOR */
  315. #endif
  316.  
  317.     /* ---------- TITLEBAR ------------ */
  318.    {{LIGHTGRAY, BLACK},      /* STD_COLOR    */
  319.     {LIGHTGRAY, BLACK},      /* SELECT_COLOR */
  320.     {LIGHTGRAY, BLACK},      /* FRAME_COLOR  */
  321.     {LIGHTGRAY, BLACK}},     /* HILITE_COLOR */
  322.  
  323.     /* ------------ DUMMY ------------- */
  324.    {{LIGHTGRAY, BLACK}, /* STD_COLOR    */
  325.     {LIGHTGRAY, BLACK}, /* SELECT_COLOR */
  326.     {LIGHTGRAY, BLACK}, /* FRAME_COLOR  */
  327.     {LIGHTGRAY, BLACK}} /* HILITE_COLOR */
  328. };
  329.  
  330. /* ------ default configuration values ------- */
  331. CONFIG cfg = {
  332.     VERSION,
  333.     0,               /* Color                       */
  334.     TRUE,            /* Editor Insert Mode          */
  335.     4,               /* Editor tab stops            */
  336.     TRUE,            /* Editor word wrap            */
  337.     TRUE,            /* Application Border          */
  338.     TRUE,            /* Application Title           */
  339.     TRUE,            /* Status Bar                  */
  340.     TRUE,            /* Textured application window */
  341.     25               /* Number of screen lines      */
  342. };
  343.  
  344. static FILE *OpenCfg(char *mode)
  345. {
  346.     char path[64];
  347.     sprintf(path, "%s.cfg", DFlatApplication);
  348.     return fopen(path, mode);
  349. }
  350.  
  351. /* ------ load a configuration file from disk ------- */
  352. int LoadConfig(void)
  353. {
  354.     FILE *fp = OpenCfg("rb");
  355.     if (fp != NULL)    {
  356.         fread(cfg.version, sizeof cfg.version+1, 1, fp);
  357.         if (strcmp(cfg.version, VERSION) == 0)    {
  358.             fseek(fp, 0L, SEEK_SET);
  359.             fread(&cfg, sizeof(CONFIG), 1, fp);
  360.         }
  361.         else
  362.             strcpy(cfg.version, VERSION);
  363.         fclose(fp);
  364.     }
  365.     return fp != NULL;
  366. }
  367.  
  368. /* ------ save a configuration file to disk ------- */
  369. void SaveConfig(void)
  370. {
  371.     FILE *fp = OpenCfg("wb");
  372.     if (fp != NULL)    {
  373.         cfg.InsertMode = GetCommandToggle(&MainMenu, ID_INSERT);
  374.         cfg.WordWrap = GetCommandToggle(&MainMenu, ID_WRAP);
  375.         fwrite(&cfg, sizeof(CONFIG), 1, fp);
  376.         fclose(fp);
  377.     }
  378. }
  379.  
  380. /* --------- set window colors --------- */
  381. void SetStandardColor(WINDOW wnd)
  382. {
  383.     foreground = WndForeground(wnd);
  384.     background = WndBackground(wnd);
  385. }
  386.  
  387. void SetReverseColor(WINDOW wnd)
  388. {
  389.     foreground = SelectForeground(wnd);
  390.     background = SelectBackground(wnd);
  391. }
  392.